package chapter13;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author : DuJiabao
 * @Date : 2021/2/23 11:32
 * @Project : thinking_in_java
 * @File : null.java
 * @Desc :
 */
public class PatternTest {
  public static void main(String[] args) {
    args = new String[]{"abcabcabcdefabc", "abc+", "(abc)+", "(abc){2,}"};
    if (args.length < 2) {   // 如果小于2，则直接退出
      System.exit(0);
    }
    System.out.println("Input: " + args[0]);
    for (String arg : args) {
      System.out.println("Regular expression: " + arg);
      Pattern p = Pattern.compile(arg);  // 根据正则表达式生成一个Pattern
      Matcher matcher = p.matcher(args[0]);   // 输入要被匹配的字符串，生成各种匹配结果的Matcher
      while (matcher.find()) {  // 查找下一个匹配的，直到找不到
        System.out.println("Match \"" + matcher.group() + "\" at position " + matcher.start() + "-" + matcher.end());
      }
      System.out.println(matcher.matches());  // 尝试整个正则表达式进行匹配
      System.out.println(matcher.lookingAt());  // 尝试将输入序列与模式匹配，从区域的开头开始。
    }
  }
}
